package com.sdry.service.impl.plan;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.sdry.model.plan.ProductPlanDetail;
import com.sdry.service.plan.ProductPlanDetailService;
import com.sdry.mapper.plan.ProductPlanDetailMapper;
/**
 *
 *@ClassName: ProductPlanDetailService
 *@Description: 生产计划详情
 *@Author llm
 *@Date 2019-07-02 18:22:48
 *@version 1.0
*/
@Service
@Transactional(rollbackFor = Exception.class)
public class ProductPlanDetailServiceImpl implements ProductPlanDetailService {
	@Resource ProductPlanDetailMapper productPlanDetailMapper;
	/** 
	 * 根据主键id查询实体
	 * @param id 主键id
	 * @return 实体
	*/
	public ProductPlanDetail queryById(Long id) {
		return productPlanDetailMapper.queryById(id);
	}
	/** 
	 * 条件查询所有
	 * @param param 实体条件
	 * @return 实体集合
	*/
	public List<ProductPlanDetail> queryAllByMution(ProductPlanDetail param) {
		return productPlanDetailMapper.queryAllByMution(param);
	}
	/** 
	 * 条件分页查询
	 * @param param 实体条件
	 * @return 实体集合
	*/
	public List<ProductPlanDetail> findPageByMution(ProductPlanDetail param) {
		return productPlanDetailMapper.findPageByMution(param);
	}
	/** 
	 * 条件查询记录数
	 * @param param 实体条件
	 * @return 实体集合
	*/
	public Integer selectCountByMution(ProductPlanDetail param) {
		return productPlanDetailMapper.selectCountByMution(param);
	}
	/** 
	 * 插入返回id
	 * @param param 实体条件
	 * @return 主键id
	*/
	public Long insert(ProductPlanDetail param) {
		return productPlanDetailMapper.insert(param);
	}
	/** 
	 * 根据主键更新 返回影响行数
	 * @param param 实体条件
	 * @return 影响行数
	*/
	public Integer update(ProductPlanDetail param) {
		return productPlanDetailMapper.update(param);
	}
	/** 
	 * 根据主键拼接的字符串删除返回影响行数
	 * @param ids 主键拼接的字符串
	 * @return 影响行数
	*/
	public Integer delete(String ids) {
		return productPlanDetailMapper.delete(ids);
	}
	/**   
	 * 根据计划单ID分页查询详情    
	 * @param param
	 * @return    
	 */
	@Override
	public List<ProductPlanDetail> findPageByPlanId(ProductPlanDetail param) {
		return productPlanDetailMapper.findPageByPlanId(param);
	}
	/**      
	 * 根据计划单ID查详情数量   
	 * @param param
	 * @return    
	 */
	@Override
	public Integer selectCountByPlanId(ProductPlanDetail param) {
		return productPlanDetailMapper.selectCountByPlanId(param);
	}

	@Override
	public Integer updateProductQuantityById(Long id, Long pId, Integer productQuantity) {
		Integer affect = 0;
		try {
			affect = productPlanDetailMapper.updateProductQuantityById(id,pId,productQuantity);
			//发货计划 状态改为为生成
			productPlanDetailMapper.updateStatus1ById(pId);
		} catch (Exception e) {
			e.printStackTrace();
		}

		return affect;
	}
}
